package lanqiao._01基础练习;

/**
 * @author 挚爱之夕
 * @version 1.0
 * @implSpec
 * 内存限制：256.0MB   C/C++时间限制：1.0s   Java时间限制：3.0s   Python时间限制：5.0s
 * 问题描述
 * 对于长度为5位的一个01串，每一位都可能是0或1，一共有32种可能。它们的前几个是：
 * 00000
 * 00001
 * 00010
 * 00011
 * 00100
 * 请按从小到大的顺序输出这32种01串。
 * 输入格式
 * 本试题没有输入。
 * 输出格式
 * 输出32行，按从小到大的顺序每行一个长度为5的01串。
 * @since 2022 - 10 - 27 - 23:34
 */
public class _13_01字符串 {
}
class Main13{
    public static void main(String[] args){
//        dfs("", 5);
        f();
    }
    //二进制枚举
    public static void f(){
        for(int i = 0; i < 32; i++){
            String s = Integer.toString(i, 2);
            //前导0
            for(int j = 0; j < 5 - s.length(); j++) System.out.print("0");
            System.out.println(s);
        }
    }
    //深搜
    public static void dfs(String s, int cnt){
        if(cnt == 0){
            System.out.println(s);
            return;
        }
        dfs(s + "0", cnt - 1);
        dfs(s + "1", cnt - 1);
    }
}
